home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / board / FiveInLine.lha / FiveInLine / Source / window.c < prev   
C/C++ Source or Header  |  1994-04-21  |  4KB  |  131 lines

  1. #include <exec/exec.h>
  2. #include <proto/exec.h>
  3.  
  4. #include <intuition/intuition.h>
  5. #include <proto/intuition.h>
  6.  
  7. #include <libraries/gadtools.h>
  8. #include <proto/gadtools.h>
  9.  
  10. #include "fil.h"
  11.  
  12. extern    APTR            VisualInfo;
  13. struct    Gadget            *mwGadgets [ 3 ];
  14. extern    struct Screen    *Scr;
  15. extern    struct Window    *mwWnd;
  16. extern    struct Menu        *mwMenus;
  17. extern    UWORD            offx;
  18. extern    UWORD            offy;
  19. extern    int                gadgetwidth;
  20. extern    int                gadgetheight;
  21. extern    int                scoreboxwidth;
  22. extern    int                scoreboxheight;
  23. extern    int                boardsize;
  24.  
  25. struct Gadget *mwGList = NULL;
  26. struct NewMenu mwNewMenu[] = {
  27.     NM_TITLE, ( STRPTR ) "Project", NULL, 0, NULL, NULL,
  28.     NM_ITEM,  ( STRPTR ) "About...", ( STRPTR ) "?", 0, 0L, NULL,
  29.     NM_ITEM,  ( STRPTR ) NM_BARLABEL, NULL, 0, 0L, NULL,
  30.     NM_ITEM,  ( STRPTR ) "Quit", ( STRPTR ) "Q", 0, 0L, NULL,
  31.     NM_TITLE, ( STRPTR ) "Playing Level", NULL, 0, NULL, NULL,
  32.     NM_ITEM,  ( STRPTR ) "5 - A winner", NULL, CHECKIT | CHECKED | MENUTOGGLE, 30L, NULL,
  33.     NM_ITEM,  ( STRPTR ) "4 - Good", NULL, CHECKIT | MENUTOGGLE, 29L, NULL,
  34.     NM_ITEM,  ( STRPTR ) "3 - Average", NULL, CHECKIT | MENUTOGGLE, 27L, NULL,
  35.     NM_ITEM,  ( STRPTR ) "2 - Poor", NULL, CHECKIT | MENUTOGGLE, 23L, NULL,
  36.     NM_ITEM,  ( STRPTR ) "1 - Born loser", NULL, CHECKIT | MENUTOGGLE, 15L, NULL,
  37.     NM_END, NULL, NULL, 0, 0L, NULL };
  38.  
  39. int setupwindow ( void )
  40. {
  41.     struct    NewGadget    ng;
  42.     struct    Gadget        *g;
  43.  
  44.     if ( ! ( g = CreateContext ( &mwGList ) ) )    return ( 1L );
  45.  
  46.     ng.ng_VisualInfo = VisualInfo;
  47.     ng.ng_TextAttr   = Scr->Font;
  48.     ng.ng_LeftEdge   = offx + 3 * INTERWIDTH + boardsize * BOXSIZE;
  49.     ng.ng_TopEdge    = offy + 2 * INTERHEIGHT;
  50.     ng.ng_Height     = gadgetheight;
  51.     ng.ng_Width         = scoreboxwidth;
  52.     ng.ng_GadgetText = "Score:";
  53.     ng.ng_Flags         = PLACETEXT_IN;
  54.     ng.ng_GadgetID     = GD_SCORE;
  55.     
  56.     mwGadgets [ GD_SCORE ] = g = CreateGadget (TEXT_KIND, g, &ng,
  57.         GTTX_Border, TRUE,
  58.         TAG_END);
  59.  
  60.     ng.ng_LeftEdge   += scoreboxwidth / 2 ;
  61.     ng.ng_TopEdge    += gadgetheight + INTERHEIGHT ;
  62.     ng.ng_Width         = gadgetwidth;
  63.     ng.ng_GadgetText = "You:";
  64.     ng.ng_Flags         = PLACETEXT_LEFT;
  65.     ng.ng_GadgetID     = GD_HUMAN;
  66.     
  67.     mwGadgets [ GD_HUMAN ] = g = CreateGadget (NUMBER_KIND, g, &ng,
  68.         GTNM_Border, TRUE,
  69.         GTNM_Justification, GTJ_RIGHT,
  70.         TAG_END);
  71.  
  72.     ng.ng_TopEdge    += gadgetheight + INTERHEIGHT;
  73.     ng.ng_GadgetText = "I  :";
  74.     ng.ng_GadgetID     = GD_AMIGA;
  75.     
  76.     mwGadgets [ GD_AMIGA ] = g = CreateGadget (NUMBER_KIND, g, &ng,
  77.         GTNM_Border, TRUE,
  78.         GTNM_Justification, GTJ_RIGHT,
  79.         TAG_END);
  80.  
  81.     if ( ! ( mwMenus = CreateMenus ( mwNewMenu, TAG_DONE ) ) )
  82.         return ( 3L );
  83.  
  84.     LayoutMenus ( mwMenus, VisualInfo,
  85.         GTMN_NewLookMenus, TRUE,
  86.         TAG_DONE );
  87.  
  88.     if ( ! ( mwWnd = OpenWindowTags ( NULL,
  89.             WA_Left,        offx + 10,    
  90.             WA_Top,            offy + 10,
  91.             WA_InnerWidth,    offx + offx + 4 * INTERWIDTH + boardsize * BOXSIZE + scoreboxwidth,
  92.             WA_InnerHeight,    offy + offy + 2 * INTERHEIGHT + ( boardsize - 1 ) * BOXSIZE,
  93.             WA_IDCMP,         IDCMP_MOUSEBUTTONS | IDCMP_MENUPICK | IDCMP_CLOSEWINDOW | IDCMP_REFRESHWINDOW,
  94.             WA_Flags,         WFLG_DRAGBAR | WFLG_DEPTHGADGET | WFLG_CLOSEGADGET | WFLG_SMART_REFRESH | WFLG_NEWLOOKMENUS,
  95.             WA_Gadgets,        mwGList,
  96.             WA_Activate,    TRUE,
  97.             WA_Title,         LEVELTEXT5,
  98.             WA_ScreenTitle,    "FiveInLine v2.2 - © 1994 Njål Fisketjøn",
  99.             TAG_DONE ) ) )
  100.         return ( 4L );
  101.  
  102.     SetMenuStrip ( mwWnd, mwMenus );
  103.     GT_RefreshWindow ( mwWnd, NULL );
  104.  
  105.     DrawBevelBox ( mwWnd->RPort, offx + 2 * INTERWIDTH + boardsize * BOXSIZE,
  106.         offy + INTERHEIGHT, 2 * INTERWIDTH + scoreboxwidth, scoreboxheight, 
  107.         GT_VisualInfo, VisualInfo, TAG_DONE );
  108.  
  109.     return ( 0L );
  110. }
  111.  
  112. void closedownwindow ( BOOL *terminated )
  113. {
  114.     if ( mwMenus ) {
  115.         ClearMenuStrip ( mwWnd );
  116.         FreeMenus ( mwMenus );
  117.         mwMenus = NULL;    }
  118.  
  119.     if ( mwWnd ) {
  120.         CloseWindow ( mwWnd );
  121.         mwWnd = NULL;
  122.     }
  123.  
  124.     if ( mwGList ) {
  125.         FreeGadgets ( mwGList );
  126.         mwGList = NULL;
  127.     }
  128.  
  129.     *terminated = TRUE;
  130. }
  131.